/**
 * 
 */
package com.org.javabody.MathApi.MathDecimal.DivBigDecimal;

import java.math.BigDecimal;
	/**
	 * @author Administrator
	 *
	 */
	public class DivBigDecimalDemo {
		/**
		 * 
		 * @param a 被除数
		 * @param b 除数
		 * @param scale 代表精确位数
		 * @param flag  -1代表BigDecimal.ROUND_HALF_UP，(四舍五入例：1.55取1.6)；
		 *              0代表BigDecimal.ROUND_UNNECESSARY，(结果精确值时用，除不尽时会抛出异常)；
		 *              1代表BigDecimal.ROUND_HALF_DOWN(四舍五入例：1.55取1.5)
		 */
		static void div(String a, String b, int scale, Integer flag) {
			Integer bool = 99999999;
			if(flag==-1) {
				bool = BigDecimal.ROUND_HALF_UP;
			} else if(flag==1) {
				bool = BigDecimal.ROUND_HALF_DOWN;
			} else if(flag==0){
				bool = BigDecimal.ROUND_UNNECESSARY;
			}
			try{
				BigDecimal d1 = new BigDecimal(a);
				BigDecimal d2 = new BigDecimal(b);
				if(Double.parseDouble(b)==0) {
					System.out.println("除数为零，不能参与除法运算");//后面一定要加，不加精确位超出实际位会报错

				} else {
					System.out.println(d1.divide(d2, scale,bool));//后面一定要加，不加精确位超出实际位会报错

				}
			} catch (Exception e) {
				System.out.println(e);
			}
		}

		/**
		 * @param args
		 */
		public static void main(String[] args) {
			// TODO Auto-generated method stub

			div("13","0",8,-1);
			div("13","7",8,-1);
			div("13","-7",8,-1);

			div("13","0",8,0);
			//div("13","7",8,0);


			// div("13","-7",8,0);

			div("13","0",8,1);
			div("13","7",8,1);
			div("13","-7",8,1);

		}
	}
